<?php
    function getMillisecond() {
      
      list($data[$t1],$data[$t2]) = explode(' ', microtime());
      $data[$t3]=(float)sprintf('%.0f',(floatval($data[$t1])+floatval($data[$t2]))*1000);
      return $data;
    }

    function creatid() {
        return rand(100,999).substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);
    }
    function pregPN($test){  
        /** 
            匹配手机号码 
            规则： 
                手机号码基本格式： 
                前面三位为： 
                移动：134-139 147 150-152 157-159 182 187 188 
                联通：130-132 155-156 185 186 
                电信：133 153 180 189 
                后面八位为： 
                0-9位的数字 
        */  
          
        $rule  = "/^((13[0-9])|147|(15[0-35-9])|180|182|(18[5-9]))[0-9]{8}$/A";  
        preg_match($rule,$test,$result);  
        return $result;  
    }  
    function pregE($test){  
            /** 
            匹配邮箱 
            规则： 
                邮箱基本格式是  *****@**.** 
                @以前是一个 大小写的字母或者数字开头，紧跟0到多个大小写字母或者数字或 . _ - 的字符串 
                @之后到.之前是 1到多个大小写字母或者数字的字符串 
                .之后是 1到多个 大小写字母或者数字或者.的字符串 
            */  
            $zhengze = '/^[a-zA-Z0-9][a-zA-Z0-9._-]*\@[a-zA-Z0-9]+\.[a-zA-Z0-9\.]+$/A';  
            preg_match($zhengze,$test,$result);  
            return $result;  
        }
    function pregTP($test){  
        /** 
        电话号码匹配 
        电话号码规则： 
            区号：3到5位，大部分都是四位，北京(010)和上海市(021)三位，西藏有部分五位，可以包裹在括号内也可以没有 
            如果有区号由括号包裹，则在区号和号码之间可以有0到1个空格，如果区号没有由括号包裹，则区号和号码之间可以有两位长度的 或者- 
            号码：7到8位的数字 
            例如：(010) 12345678  或者 (010)12345678 或者 010  12345678 或者 010--12345678  
        */  
        $rule = '/^(((010)|(021)|(0\d3,4))( ?)([0-9]{7,8}))|((010|021|0\d{3,4}))([- ]{1,2})([0-9]{7,8})$/A';  
        preg_match($rule,$test,$result);  
        return $result;  
    }
    function getdelnum($uid,$type){ 
          $today=date("Y-m-d");
          //这个不需要解释吧，直接把第一天设为1号
          $firstday = date('Y-m-01', strtotime($today)); 
          //这个语法以前还真没见过，
          $lastday = date('Y-m-d', strtotime("$firstday +1 month -1 day"));
          $data3['date']= array('between',$today,$lastday);
          //$data3['date']=array('EGT',$firstday);
          //$data3['date']=array('ELT',$lastday);
          //$data3['_logic']='and';
          //$map3['_complex']=$data3;
          $map3['uid']=array('EQ',$_SESSION ['uid']);
          $map3['status']=array('EQ',9);
          $map3['type']=array('EQ','in');
          //$denum=
          return M('tgbz')->where($map3)->count();
       //echo  M('tgbz')->getLastSql;
       //echo $denum;die;
    }

    function pregURL($test){  
        /** 
            匹配url 
            url规则： 
                例 
                协议://域名（www/tieba/baike...）.名称.后缀/文件路径/文件名 
                http://zhidao.baidu.com/question/535596723.html 
                协议://域名（www/tieba/baike...）.名称.后缀/文件路径/文件名?参数 
                www.lhrb.com.cn/portal.php?mod=view&aid=7412 
                协议://域名（www/tieba/baike...）.名称.后缀/文件路径/文件名/参数 
                http://www.xugou.com.cn/yiji/erji/index.php/canshu/11 
                 
                协议：可有可无，由大小写字母组成；不写协议则不应存在://，否则必须存在:// 
                域名：必须存在，由大小写字母组成 
                名称：必须存在，字母数字汉字 
                后缀：必须存在，大小写字母和.组成 
                文件路径：可有可无，由大小写字母和数字组成 
                文件名：可有可无，由大小写字母和数字组成 
                参数:可有可无，存在则必须由?开头，即存在?开头就必须有相应的参数信息 
        */  
        $rule = '/^(([a-zA-Z]+)(:\/\/))?([a-zA-Z]+)\.(\w+)\.([\w.]+)(\/([\w]+)\/?)*(\/[a-zA-Z0-9]+\.(\w+))*(\/([\w]+)\/?)*(\?(\w+=?[\w]*))*((&?\w+=?[\w]*))*$/';  
        preg_match($rule,$test,$result);  
        return $result;  
    } 
    function pregIC($test){  
        /** 
        匹配身份证号 
        规则： 
            15位纯数字或者18位纯数字或者17位数字加一位x 
        */  
        $rule = '/^(([0-9]{15})|([0-9]{18})|([0-9]{17}x))$/';         
        preg_match($rule,$test,$result);  
        return $result;  
    }  
    function pregPOS($test){  
    /** 
        匹配邮编 
            规则：六位数字，第一位不能为0 
    */  
        $rule ='/^[1-9]\d{5}$/';  
        preg_match($rule,$test,$result);  
        return $result;  
    }  
     function pregnum($test){  
    /** 
        匹配数字
            规则：六位数字，第一位不能为0 
    */  
        $rule ='^[0-9]*[1-9][0-9]*$';  
        preg_match($rule,$test,$result);  
        return $result;
    }
    function pregTI($test){  
        /**
        匹配时间 
            规则： 
                形式可以为： 
                年-月-日 小时:分钟:秒 
                年-月-日 小时:分钟 
                年-月-日 
                年：1或2开头的四位数 
                月：1位1到9的数；0或1开头的两位数，0开头的时候个位数是1到9的数，1开头的时候个位数是1到2的数 
                日：1位1到9的数；0或1或2或3开头的两位数，0开头的时候个位数是1到9的数，1或2开头的时候个位数是0到9的数，3开头的时候个位数是0或1 
                小时：0到9的一位数；0或1开头的两位数，个位是0到9；2开头的两位数，个位是0-3 
                分钟：0到9的一位数；0到5开头的两位数，个位是0到9； 
                分钟：0到9的一位数；0到5开头的两位数，各位是0到9 
        */  
        $rule ='/^(([1-2][0-9]{3}-)((([1-9])|(0[1-9])|(1[0-2]))-)((([1-9])|(0[1-9])|([1-2][0-9])|(3[0-1]))))( ((([0-9])|(([0-1][0-9])|(2[0-3]))):(([0-9])|([0-5][0-9]))(:(([0-9])|([0-5][0-9])))?))?$/';  
        preg_match($rule,$test,$result);  
        return $result;  
    }  
    function pregCh($test){  
//utf8下匹配中文 
    $rule ='/([\x{4e00}-\x{9fa5}]){1}/u';  
    preg_match_all($rule,$test,$result);  
    return $result;  
    }
?>